package TP1.implementation;

import TP1.Elemento;
import TP1.TDA.ColaVIPTDA;

public class ColaVIPArrayImpl2 implements ColaVIPTDA {
	private Elemento[] vec;
	private static final int MAX = 100;
	private int cant;

	public void inicializar() {
		cant = 0;
		vec = new Elemento[MAX];
	}

	public boolean vacia() {
		return (cant == 0);
	}

	public void acolar(int valor, int prioridad) {
		Elemento nuevo = new Elemento(valor, prioridad);

		if (cant > 0) {
			int i = MAX - cant;
			while (i < MAX && vec[i].getPrioridad() >= nuevo.getPrioridad()) {
				vec[i - 1] = vec[i];
				i++;
			}
			vec[i - 1] = nuevo;
		} else {
			vec[MAX - 1] = nuevo;
		}
		cant++;
	}

	public void descolar() {
		vec[MAX - cant] = null;
		cant--;
	}

	public int valorPrimero() {
		return vec[MAX - cant].getValor();
	}

	public int prioridadPrimero() {
		return vec[MAX - cant].getPrioridad();
	}

}
